linode shared ips
Linode では複数のインスタンス間で IP アドレスを共有できる 共有できるのは IPv4 アドレスとホストに割り当てた IPv6 レンジ
IPv6 の共有は BGP モードに限られるが,2024-01-28 現在日本のリージョン(東京・大阪)は両方 BGP モードになっているのでこの前提でいく
本来はフェイルオーバーのための機能だが,うまく使えば負荷分散にも応用できそうな気がする
共有自体はドキュメントに従うだけ
この場合,ipv6 nh resolve-via-defaultに相当する設定は必須
マルチホップで eBGP するとき,接続先は直接接続でないので何らかの方法で解決する必要があるが,このとき FRR は カーネルの FIB を見ずに自分で解決するらしい このときデフォルトゲートウェイ(0.0.0.0/0や::/0)は特別視されてデフォルトでは接続先の解決には使われない
上記の設定を投入するか,接続先に対応するスタティックルートを投入するかすると解決できるようになる
技術的には特定のコミュニティを付けてプレフィックスを広報すると Linode のネットワーク上でその nexthop に対応するインスタンスにトラフィックが流れるようになる 経路交換というよりもそういう API だと考えたほうがいい
Tips
Shared にする IPv4 アドレスはノードに最初から付いてくるやつでもいい
アドレスが欲しい場合 Nanode を生贄にすることで $5/month で無条件で増やせる
若干高いが……
頼むから枯渇〜とかポリシーが……とか面倒なこと言わずにそこそこの料金でアドレスを生やせるようにしてほしい
アドレスを Shared にすると BGP で広告しない限り一切のトラフィックが飛んでこなくなる
DSR はできない
= アドレスを共有しているが Primary でないインスタンスからそのアドレスをソースとしてパケットを投げたとき,Linode のネットワークはそれを受け取らない 内部の SDN を操作しているだけなので,それはそう……
ロードバランシングとしては不向きではある
謎
Secondary (65000:2) で同じプレフィックスを広告するインスタンスが複数あったらどうなる?
Primary (65000:1) の場合も気になるが